{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import h5py\n",
    "import librosa\n",
    "import itertools\n",
    "from copy import copy\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from collections import OrderedDict\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.metrics import confusion_matrix"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "from tensorflow.keras.utils import to_categorical\n",
    "from tensorflow.keras.models import Model\n",
    "from tensorflow.keras.layers import Input\n",
    "from tensorflow.keras.models import Sequential\n",
    "from tensorflow.keras.layers import Add\n",
    "from tensorflow.keras.layers import Dense\n",
    "from tensorflow.keras.layers import Activation\n",
    "from tensorflow.keras.layers import PReLU\n",
    "from tensorflow.keras.layers import Conv2D\n",
    "from tensorflow.keras.layers import MaxPooling2D\n",
    "from tensorflow.keras.layers import AveragePooling2D\n",
    "from tensorflow.keras.layers import GlobalAveragePooling2D\n",
    "from tensorflow.keras.layers import GlobalMaxPooling2D\n",
    "from tensorflow.keras.layers import Dropout\n",
    "from tensorflow.keras.layers import Flatten\n",
    "from tensorflow.keras.layers import BatchNormalization\n",
    "from tensorflow.keras.callbacks import ReduceLROnPlateau"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# For reproducibility purposes\n",
    "np.random.seed(42)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Read the data\n",
    "\n",
    "> Helper functions to assist the process to read songs, split then and return an array of spectrograms/melspectrograms"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "\"\"\"\n",
    "@description: Method to split a song into multiple songs using overlapping windows\n",
    "\"\"\"\n",
    "def splitsongs(X, y, window = 0.05, overlap = 0.5):\n",
    "    # Empty lists to hold our results\n",
    "    temp_X = []\n",
    "    temp_y = []\n",
    "\n",
    "    # Get the input song array size\n",
    "    xshape = X.shape[0]\n",
    "    chunk = int(xshape*window)\n",
    "    offset = int(chunk*(1.-overlap))\n",
    "    \n",
    "    # Split the song and create new ones on windows\n",
    "    spsong = [X[i:i+chunk] for i in range(0, xshape - chunk + offset, offset)]\n",
    "    for s in spsong:\n",
    "        if s.shape[0] != chunk:\n",
    "            continue\n",
    "\n",
    "        temp_X.append(s)\n",
    "        temp_y.append(y)\n",
    "\n",
    "    return np.array(temp_X), np.array(temp_y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "\"\"\"\n",
    "@description: Method to convert a list of songs to a np array of melspectrograms\n",
    "\"\"\"\n",
    "def to_melspectrogram(songs, n_fft=1024, hop_length=256):\n",
    "    # Transformation function\n",
    "    melspec = lambda x: librosa.feature.melspectrogram(x, n_fft=n_fft,\n",
    "        hop_length=hop_length, n_mels=128)[:,:,np.newaxis]\n",
    "\n",
    "    # map transformation of input songs to melspectrogram using log-scale\n",
    "    tsongs = map(melspec, songs)\n",
    "    # np.array([librosa.power_to_db(s, ref=np.max) for s in list(tsongs)])\n",
    "    return np.array(list(tsongs))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def split_convert(X, y):\n",
    "    arr_specs, arr_genres = [], []\n",
    "    \n",
    "    # Convert to spectrograms and split into small windows\n",
    "    for fn, genre in zip(X, y):\n",
    "        signal, sr = librosa.load(fn)\n",
    "        signal = signal[:song_samples]\n",
    "\n",
    "        # Convert to dataset of spectograms/melspectograms\n",
    "        signals, y = splitsongs(signal, genre)\n",
    "\n",
    "        # Convert to \"spec\" representation\n",
    "        specs = to_melspectrogram(signals)\n",
    "\n",
    "        # Save files\n",
    "        arr_genres.extend(y)\n",
    "        arr_specs.extend(specs)\n",
    "    \n",
    "    return np.array(arr_specs), to_categorical(arr_genres)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "def read_data(src_dir, genres, song_samples):    \n",
    "    # Empty array of dicts with the processed features from all files\n",
    "    arr_fn = []\n",
    "    arr_genres = []\n",
    "\n",
    "    # Get file list from the folders\n",
    "    for x,_ in genres.items():\n",
    "        folder = src_dir + x\n",
    "        for root, subdirs, files in os.walk(folder):\n",
    "            for file in files:\n",
    "                file_name = folder + \"/\" + file\n",
    "\n",
    "                # Save the file name and the genre\n",
    "                arr_fn.append(file_name)\n",
    "                arr_genres.append(genres[x])\n",
    "    \n",
    "    # Split into train and test\n",
    "    X_train, X_test, y_train, y_test = train_test_split(\n",
    "        arr_fn, arr_genres, test_size=0.3, random_state=42, stratify=arr_genres\n",
    "    )\n",
    "    \n",
    "    # Split into small segments and convert to spectrogram\n",
    "    X_train, y_train = split_convert(X_train, y_train)\n",
    "    X_test, y_test = split_convert(X_test, y_test)\n",
    "\n",
    "    return X_train, X_test, y_train, y_test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Parameters\n",
    "gtzan_dir = '../data/genres/'\n",
    "song_samples = 660000\n",
    "genres = {'metal': 0, 'disco': 1, 'classical': 2, 'hiphop': 3, 'jazz': 4, \n",
    "          'country': 5, 'pop': 6, 'blues': 7, 'reggae': 8, 'rock': 9}\n",
    "\n",
    "# Read the data\n",
    "X_train, X_test, y_train, y_test = read_data(gtzan_dir, genres, song_samples)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(27300, 128, 129, 1) (11700, 128, 129, 1) (27300, 10) (11700, 10)\n"
     ]
    }
   ],
   "source": [
    "print(X_train.shape, X_test.shape, y_train.shape, y_test.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Histogram for train and test \n",
    "values, count = np.unique(np.argmax(y_train, axis=1), return_counts=True)\n",
    "plt.bar(values, count)\n",
    "\n",
    "values, count = np.unique(np.argmax(y_test, axis=1), return_counts=True)\n",
    "plt.bar(values, count)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# GTZAN Melspectrogram Generator"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "from tensorflow.keras.utils import Sequence\n",
    "\n",
    "class GTZANGenerator(Sequence):\n",
    "    def __init__(self, X, y, batch_size=64, is_test = False):\n",
    "        self.X = X\n",
    "        self.y = y\n",
    "        self.batch_size = batch_size\n",
    "        self.is_test = is_test\n",
    "    \n",
    "    def __len__(self):\n",
    "        return int(np.ceil(len(self.X)/self.batch_size))\n",
    "    \n",
    "    def __getitem__(self, index):\n",
    "        # Get batch indexes\n",
    "        signals = self.X[index*self.batch_size:(index+1)*self.batch_size]\n",
    "\n",
    "        # Apply data augmentation\n",
    "        if not self.is_test:\n",
    "            signals = self.__augment(signals)\n",
    "        return signals, self.y[index*self.batch_size:(index+1)*self.batch_size]\n",
    "    \n",
    "    def __augment(self, signals, hor_flip = 0.5, random_cutout = 0.5):\n",
    "        spectrograms =  []\n",
    "        for s in signals:\n",
    "            signal = copy(s)\n",
    "            \n",
    "            # Perform horizontal flip\n",
    "            if np.random.rand() < hor_flip:\n",
    "                signal = np.flip(signal, 1)\n",
    "\n",
    "            # Perform random cutoout of some frequency/time\n",
    "            if np.random.rand() < random_cutout:\n",
    "                lines = np.random.randint(signal.shape[0], size=3)\n",
    "                cols = np.random.randint(signal.shape[0], size=4)\n",
    "                signal[lines, :, :] = -80 # dB\n",
    "                signal[:, cols, :] = -80 # dB\n",
    "\n",
    "            spectrograms.append(signal)\n",
    "        return np.array(spectrograms)\n",
    "    \n",
    "    def on_epoch_end(self):\n",
    "        self.indexes = np.arange(len(self.X))\n",
    "        np.random.shuffle(self.indexes)\n",
    "        return None"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Custom CNN (Melspectrogram version)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "def conv_block(x, n_filters, pool_size=(2, 2)):\n",
    "    x = Conv2D(n_filters, (3, 3), strides=(1, 1), padding='same')(x)\n",
    "    x = Activation('relu')(x)\n",
    "    x = MaxPooling2D(pool_size=pool_size, strides=pool_size)(x)\n",
    "    x = Dropout(0.25)(x)\n",
    "    return x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Model Definition\n",
    "def create_model(input_shape, num_genres):\n",
    "    inpt = Input(shape=input_shape)\n",
    "    x = conv_block(inpt, 16)\n",
    "    x = conv_block(x, 32)\n",
    "    x = conv_block(x, 64)\n",
    "    x = conv_block(x, 128)\n",
    "    x = conv_block(x, 256)\n",
    "    \n",
    "    # Global Pooling and MLP\n",
    "    x = Flatten()(x)\n",
    "    x = Dropout(0.5)(x)\n",
    "    x = Dense(512, activation='relu', \n",
    "              kernel_regularizer=tf.keras.regularizers.l2(0.02))(x)\n",
    "    x = Dropout(0.25)(x)\n",
    "    predictions = Dense(num_genres, \n",
    "                        activation='softmax', \n",
    "                        kernel_regularizer=tf.keras.regularizers.l2(0.02))(x)\n",
    "    \n",
    "    model = Model(inputs=inpt, outputs=predictions)\n",
    "    return model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = create_model(X_train[0].shape, len(genres))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"model\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "input_1 (InputLayer)         [(None, 128, 129, 1)]     0         \n",
      "_________________________________________________________________\n",
      "conv2d (Conv2D)              (None, 128, 129, 16)      160       \n",
      "_________________________________________________________________\n",
      "activation (Activation)      (None, 128, 129, 16)      0         \n",
      "_________________________________________________________________\n",
      "max_pooling2d (MaxPooling2D) (None, 64, 64, 16)        0         \n",
      "_________________________________________________________________\n",
      "dropout (Dropout)            (None, 64, 64, 16)        0         \n",
      "_________________________________________________________________\n",
      "conv2d_1 (Conv2D)            (None, 64, 64, 32)        4640      \n",
      "_________________________________________________________________\n",
      "activation_1 (Activation)    (None, 64, 64, 32)        0         \n",
      "_________________________________________________________________\n",
      "max_pooling2d_1 (MaxPooling2 (None, 32, 32, 32)        0         \n",
      "_________________________________________________________________\n",
      "dropout_1 (Dropout)          (None, 32, 32, 32)        0         \n",
      "_________________________________________________________________\n",
      "conv2d_2 (Conv2D)            (None, 32, 32, 64)        18496     \n",
      "_________________________________________________________________\n",
      "activation_2 (Activation)    (None, 32, 32, 64)        0         \n",
      "_________________________________________________________________\n",
      "max_pooling2d_2 (MaxPooling2 (None, 16, 16, 64)        0         \n",
      "_________________________________________________________________\n",
      "dropout_2 (Dropout)          (None, 16, 16, 64)        0         \n",
      "_________________________________________________________________\n",
      "conv2d_3 (Conv2D)            (None, 16, 16, 128)       73856     \n",
      "_________________________________________________________________\n",
      "activation_3 (Activation)    (None, 16, 16, 128)       0         \n",
      "_________________________________________________________________\n",
      "max_pooling2d_3 (MaxPooling2 (None, 8, 8, 128)         0         \n",
      "_________________________________________________________________\n",
      "dropout_3 (Dropout)          (None, 8, 8, 128)         0         \n",
      "_________________________________________________________________\n",
      "conv2d_4 (Conv2D)            (None, 8, 8, 256)         295168    \n",
      "_________________________________________________________________\n",
      "activation_4 (Activation)    (None, 8, 8, 256)         0         \n",
      "_________________________________________________________________\n",
      "max_pooling2d_4 (MaxPooling2 (None, 4, 4, 256)         0         \n",
      "_________________________________________________________________\n",
      "dropout_4 (Dropout)          (None, 4, 4, 256)         0         \n",
      "_________________________________________________________________\n",
      "flatten (Flatten)            (None, 4096)              0         \n",
      "_________________________________________________________________\n",
      "dropout_5 (Dropout)          (None, 4096)              0         \n",
      "_________________________________________________________________\n",
      "dense (Dense)                (None, 512)               2097664   \n",
      "_________________________________________________________________\n",
      "dropout_6 (Dropout)          (None, 512)               0         \n",
      "_________________________________________________________________\n",
      "dense_1 (Dense)              (None, 10)                5130      \n",
      "=================================================================\n",
      "Total params: 2,495,114\n",
      "Trainable params: 2,495,114\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "model.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Loss function"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.compile(loss=tf.keras.losses.categorical_crossentropy,\n",
    "              optimizer=tf.keras.optimizers.Adam(),\n",
    "              metrics=['accuracy'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "reduceLROnPlat = ReduceLROnPlateau(\n",
    "    monitor='val_loss', \n",
    "    factor=0.95,\n",
    "    patience=3,\n",
    "    verbose=1,\n",
    "    mode='min',\n",
    "    min_delta=0.0001,\n",
    "    cooldown=2,\n",
    "    min_lr=1e-5\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Generators\n",
    "batch_size = 128\n",
    "train_generator = GTZANGenerator(X_train, y_train)\n",
    "steps_per_epoch = np.ceil(len(X_train)/batch_size)\n",
    "\n",
    "validation_generator = GTZANGenerator(X_test, y_test)\n",
    "val_steps = np.ceil(len(X_test)/batch_size)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/150\n",
      "214/214 [==============================] - 16s 73ms/step - loss: 7.9670 - accuracy: 0.1060 - val_loss: 3.3254 - val_accuracy: 0.1512\n",
      "Epoch 2/150\n",
      "214/214 [==============================] - 14s 66ms/step - loss: 2.7241 - accuracy: 0.1817 - val_loss: 2.3599 - val_accuracy: 0.2125\n",
      "Epoch 3/150\n",
      "214/214 [==============================] - 14s 66ms/step - loss: 2.3268 - accuracy: 0.1936 - val_loss: 2.2607 - val_accuracy: 0.2147\n",
      "Epoch 4/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 2.2475 - accuracy: 0.1760 - val_loss: 2.1048 - val_accuracy: 0.2104\n",
      "Epoch 5/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 2.1765 - accuracy: 0.1712 - val_loss: 2.1136 - val_accuracy: 0.1690\n",
      "Epoch 6/150\n",
      "214/214 [==============================] - 14s 63ms/step - loss: 2.1145 - accuracy: 0.2047 - val_loss: 2.0495 - val_accuracy: 0.1938\n",
      "Epoch 7/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 2.0977 - accuracy: 0.2190 - val_loss: 2.0104 - val_accuracy: 0.2597\n",
      "Epoch 8/150\n",
      "214/214 [==============================] - 14s 66ms/step - loss: 2.0809 - accuracy: 0.2319 - val_loss: 1.9829 - val_accuracy: 0.2660\n",
      "Epoch 9/150\n",
      "214/214 [==============================] - 14s 66ms/step - loss: 2.0448 - accuracy: 0.2301 - val_loss: 2.0278 - val_accuracy: 0.2036\n",
      "Epoch 10/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 2.0400 - accuracy: 0.2223 - val_loss: 1.9371 - val_accuracy: 0.2201\n",
      "Epoch 11/150\n",
      "214/214 [==============================] - 14s 66ms/step - loss: 2.0286 - accuracy: 0.2389 - val_loss: 1.9102 - val_accuracy: 0.2157\n",
      "Epoch 12/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.9919 - accuracy: 0.2553 - val_loss: 1.9082 - val_accuracy: 0.2712\n",
      "Epoch 13/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.9485 - accuracy: 0.2614 - val_loss: 1.9313 - val_accuracy: 0.2559\n",
      "Epoch 14/150\n",
      "214/214 [==============================] - 14s 63ms/step - loss: 2.0000 - accuracy: 0.2452 - val_loss: 1.8717 - val_accuracy: 0.2495\n",
      "Epoch 15/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.9734 - accuracy: 0.2675 - val_loss: 1.8404 - val_accuracy: 0.2741\n",
      "Epoch 16/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.9171 - accuracy: 0.2742 - val_loss: 1.8788 - val_accuracy: 0.2974\n",
      "Epoch 17/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.9237 - accuracy: 0.2988 - val_loss: 1.8609 - val_accuracy: 0.2996\n",
      "Epoch 18/150\n",
      "214/214 [==============================] - 14s 63ms/step - loss: 1.9164 - accuracy: 0.2841 - val_loss: 1.8279 - val_accuracy: 0.28911.9599 - accu - ETA: 6s - los - ETA:  - ETA: 1s - loss: 1\n",
      "Epoch 19/150\n",
      "214/214 [==============================] - 14s 63ms/step - loss: 1.8822 - accuracy: 0.3049 - val_loss: 1.9588 - val_accuracy: 0.2717\n",
      "Epoch 20/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.9182 - accuracy: 0.3020 - val_loss: 1.8090 - val_accuracy: 0.3463\n",
      "Epoch 21/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.8934 - accuracy: 0.3177 - val_loss: 1.7859 - val_accuracy: 0.3314\n",
      "Epoch 22/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.9114 - accuracy: 0.3090 - val_loss: 1.7856 - val_accuracy: 0.3067\n",
      "Epoch 23/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.8505 - accuracy: 0.3221 - val_loss: 1.7803 - val_accuracy: 0.3434s: 1.8515 - ac - ETA: 1s\n",
      "Epoch 24/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.8514 - accuracy: 0.3145 - val_loss: 1.7475 - val_accuracy: 0.3502\n",
      "Epoch 25/150\n",
      "214/214 [==============================] - 13s 63ms/step - loss: 1.8494 - accuracy: 0.2984 - val_loss: 1.7509 - val_accuracy: 0.3393 loss: 1.8470 - accu\n",
      "Epoch 26/150\n",
      "214/214 [==============================] - 13s 63ms/step - loss: 1.8433 - accuracy: 0.3456 - val_loss: 1.8446 - val_accuracy: 0.3178\n",
      "Epoch 27/150\n",
      "214/214 [==============================] - 14s 66ms/step - loss: 1.8155 - accuracy: 0.3541 - val_loss: 1.7450 - val_accuracy: 0.3719\n",
      "Epoch 28/150\n",
      "214/214 [==============================] - 14s 66ms/step - loss: 1.8141 - accuracy: 0.3394 - val_loss: 1.7023 - val_accuracy: 0.4175\n",
      "Epoch 29/150\n",
      "214/214 [==============================] - 15s 68ms/step - loss: 1.7866 - accuracy: 0.3501 - val_loss: 1.7601 - val_accuracy: 0.3957\n",
      "Epoch 30/150\n",
      "214/214 [==============================] - 15s 68ms/step - loss: 1.7743 - accuracy: 0.3759 - val_loss: 1.7338 - val_accuracy: 0.3993\n",
      "Epoch 31/150\n",
      "214/214 [==============================] - 14s 68ms/step - loss: 1.7356 - accuracy: 0.3798 - val_loss: 1.6585 - val_accuracy: 0.3923\n",
      "Epoch 32/150\n",
      "214/214 [==============================] - 15s 68ms/step - loss: 1.7659 - accuracy: 0.3817 - val_loss: 1.7022 - val_accuracy: 0.3913\n",
      "Epoch 33/150\n",
      "214/214 [==============================] - 14s 68ms/step - loss: 1.7168 - accuracy: 0.4047 - val_loss: 1.6327 - val_accuracy: 0.3922\n",
      "Epoch 34/150\n",
      "214/214 [==============================] - 14s 67ms/step - loss: 1.7661 - accuracy: 0.3752 - val_loss: 1.6221 - val_accuracy: 0.4433\n",
      "Epoch 35/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.7567 - accuracy: 0.3774 - val_loss: 1.6006 - val_accuracy: 0.4429\n",
      "Epoch 36/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.7019 - accuracy: 0.4069 - val_loss: 1.5065 - val_accuracy: 0.4924\n",
      "Epoch 37/150\n",
      "214/214 [==============================] - 14s 66ms/step - loss: 1.6326 - accuracy: 0.4322 - val_loss: 1.5537 - val_accuracy: 0.4268\n",
      "Epoch 38/150\n",
      "214/214 [==============================] - 14s 66ms/step - loss: 1.7175 - accuracy: 0.3936 - val_loss: 1.6342 - val_accuracy: 0.4054\n",
      "Epoch 39/150\n",
      "212/214 [============================>.] - ETA: 0s - loss: 1.6712 - accuracy: 0.4040\n",
      "Epoch 00039: ReduceLROnPlateau reducing learning rate to 0.0009500000451225787.\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.6698 - accuracy: 0.4052 - val_loss: 1.5908 - val_accuracy: 0.4978\n",
      "Epoch 40/150\n",
      "214/214 [==============================] - 14s 66ms/step - loss: 1.6462 - accuracy: 0.4396 - val_loss: 1.5504 - val_accuracy: 0.4932\n",
      "Epoch 41/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.6106 - accuracy: 0.4442 - val_loss: 1.5409 - val_accuracy: 0.4591\n",
      "Epoch 42/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.6252 - accuracy: 0.4453 - val_loss: 1.4944 - val_accuracy: 0.4811\n",
      "Epoch 43/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.5681 - accuracy: 0.4697 - val_loss: 1.6367 - val_accuracy: 0.4186\n",
      "Epoch 44/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.6644 - accuracy: 0.4265 - val_loss: 1.4482 - val_accuracy: 0.4915\n",
      "Epoch 45/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.5960 - accuracy: 0.4723 - val_loss: 1.4631 - val_accuracy: 0.5121\n",
      "Epoch 46/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.5886 - accuracy: 0.4483 - val_loss: 1.5042 - val_accuracy: 0.4788\n",
      "Epoch 47/150\n",
      "212/214 [============================>.] - ETA: 0s - loss: 1.6167 - accuracy: 0.4451\n",
      "Epoch 00047: ReduceLROnPlateau reducing learning rate to 0.0009025000152178108.\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.6177 - accuracy: 0.4434 - val_loss: 1.5493 - val_accuracy: 0.4589\n",
      "Epoch 48/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.5601 - accuracy: 0.4763 - val_loss: 1.5750 - val_accuracy: 0.4667\n",
      "Epoch 49/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.5282 - accuracy: 0.4859 - val_loss: 1.4422 - val_accuracy: 0.5172\n",
      "Epoch 50/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.5719 - accuracy: 0.4829 - val_loss: 1.4582 - val_accuracy: 0.5340\n",
      "Epoch 51/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.5787 - accuracy: 0.4651 - val_loss: 1.6262 - val_accuracy: 0.4628\n",
      "Epoch 52/150\n",
      "213/214 [============================>.] - ETA: 0s - loss: 1.5508 - accuracy: 0.4981\n",
      "Epoch 00052: ReduceLROnPlateau reducing learning rate to 0.0008573750033974647.\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.5483 - accuracy: 0.4989 - val_loss: 1.4542 - val_accuracy: 0.5204\n",
      "Epoch 53/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.4796 - accuracy: 0.5036 - val_loss: 1.3985 - val_accuracy: 0.5323\n",
      "Epoch 54/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.5485 - accuracy: 0.4981 - val_loss: 1.4571 - val_accuracy: 0.5121curacy:  - ETA\n",
      "Epoch 55/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.5175 - accuracy: 0.5091 - val_loss: 1.4023 - val_accuracy: 0.5686\n",
      "Epoch 56/150\n",
      "212/214 [============================>.] - ETA: 0s - loss: 1.4408 - accuracy: 0.5256 ETA: 0s - loss: 1.4431 - accuracy\n",
      "Epoch 00056: ReduceLROnPlateau reducing learning rate to 0.0008145062311086804.\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.4410 - accuracy: 0.5262 - val_loss: 1.4457 - val_accuracy: 0.5312\n",
      "Epoch 57/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.4521 - accuracy: 0.5187 - val_loss: 1.3451 - val_accuracy: 0.5791\n",
      "Epoch 58/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.4666 - accuracy: 0.5253 - val_loss: 1.3667 - val_accuracy: 0.5754\n",
      "Epoch 59/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.5014 - accuracy: 0.5138 - val_loss: 1.3141 - val_accuracy: 0.6016\n",
      "Epoch 60/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.4186 - accuracy: 0.5361 - val_loss: 1.3144 - val_accuracy: 0.5983cy\n",
      "Epoch 61/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.4445 - accuracy: 0.5374 - val_loss: 1.2955 - val_accuracy: 0.5973\n",
      "Epoch 62/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.3730 - accuracy: 0.5580 - val_loss: 1.3523 - val_accuracy: 0.5735\n",
      "Epoch 63/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.4156 - accuracy: 0.5332 - val_loss: 1.3812 - val_accuracy: 0.5722\n",
      "Epoch 64/150\n",
      "213/214 [============================>.] - ETA: 0s - loss: 1.3808 - accuracy: 0.56 - ETA: 0s - loss: 1.3799 - accuracy: 0.5676\n",
      "Epoch 00064: ReduceLROnPlateau reducing learning rate to 0.0007737808919046074.\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.3774 - accuracy: 0.5689 - val_loss: 1.2976 - val_accuracy: 0.6005\n",
      "Epoch 65/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.4632 - accuracy: 0.5337 - val_loss: 1.3976 - val_accuracy: 0.5630\n",
      "Epoch 66/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.3115 - accuracy: 0.5762 - val_loss: 1.2789 - val_accuracy: 0.5893\n",
      "Epoch 67/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.3945 - accuracy: 0.5573 - val_loss: 1.2238 - val_accuracy: 0.6118\n",
      "Epoch 68/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.3873 - accuracy: 0.5556 - val_loss: 1.2963 - val_accuracy: 0.5915\n",
      "Epoch 69/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.4028 - accuracy: 0.5593 - val_loss: 1.3328 - val_accuracy: 0.5873\n",
      "Epoch 70/150\n",
      "212/214 [============================>.] - ETA: 0s - loss: 1.3526 - accuracy: 0.5754\n",
      "Epoch 00070: ReduceLROnPlateau reducing learning rate to 0.000735091819660738.\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.3509 - accuracy: 0.5754 - val_loss: 1.3024 - val_accuracy: 0.5968\n",
      "Epoch 71/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.3621 - accuracy: 0.5683 - val_loss: 1.2307 - val_accuracy: 0.6260\n",
      "Epoch 72/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.3141 - accuracy: 0.5880 - val_loss: 1.3519 - val_accuracy: 0.5713\n",
      "Epoch 73/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.2984 - accuracy: 0.5985 - val_loss: 1.2421 - val_accuracy: 0.6219\n",
      "Epoch 74/150\n",
      "213/214 [============================>.] - ETA: 0s - loss: 1.3435 - accuracy: 0.5870\n",
      "Epoch 00074: ReduceLROnPlateau reducing learning rate to 0.0006983372120885178.\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.3461 - accuracy: 0.5861 - val_loss: 1.2365 - val_accuracy: 0.6279\n",
      "Epoch 75/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.2671 - accuracy: 0.6016 - val_loss: 1.1901 - val_accuracy: 0.6326\n",
      "Epoch 76/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.2949 - accuracy: 0.6068 - val_loss: 1.1961 - val_accuracy: 0.6517\n",
      "Epoch 77/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.3069 - accuracy: 0.5925 - val_loss: 1.1749 - val_accuracy: 0.6428\n",
      "Epoch 78/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.2715 - accuracy: 0.6067 - val_loss: 1.1779 - val_accuracy: 0.6384\n",
      "Epoch 79/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.2999 - accuracy: 0.5969 - val_loss: 1.2386 - val_accuracy: 0.6189\n",
      "Epoch 80/150\n",
      "213/214 [============================>.] - ETA: 0s - loss: 1.2199 - accuracy: 0.6174\n",
      "Epoch 00080: ReduceLROnPlateau reducing learning rate to 0.0006634203542489559.\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.2185 - accuracy: 0.6177 - val_loss: 1.2019 - val_accuracy: 0.6274\n",
      "Epoch 81/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.2428 - accuracy: 0.6060 - val_loss: 1.2053 - val_accuracy: 0.6208\n",
      "Epoch 82/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.2418 - accuracy: 0.6268 - val_loss: 1.1778 - val_accuracy: 0.6469\n",
      "Epoch 83/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.2613 - accuracy: 0.6061 - val_loss: 1.1220 - val_accuracy: 0.6574\n",
      "Epoch 84/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.2116 - accuracy: 0.6259 - val_loss: 1.1560 - val_accuracy: 0.6435\n",
      "Epoch 85/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.1671 - accuracy: 0.6476 - val_loss: 1.1243 - val_accuracy: 0.6534\n",
      "Epoch 86/150\n",
      "213/214 [============================>.] - ETA: 0s - loss: 1.2645 - accuracy: 0.6065\n",
      "Epoch 00086: ReduceLROnPlateau reducing learning rate to 0.0006302493420662358.\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.2624 - accuracy: 0.6077 - val_loss: 1.1280 - val_accuracy: 0.6557\n",
      "Epoch 87/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.2843 - accuracy: 0.5991 - val_loss: 1.1075 - val_accuracy: 0.6800\n",
      "Epoch 88/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.1994 - accuracy: 0.6295 - val_loss: 1.1372 - val_accuracy: 0.6664\n",
      "Epoch 89/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.2214 - accuracy: 0.6195 - val_loss: 1.1063 - val_accuracy: 0.6636\n",
      "Epoch 90/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.1979 - accuracy: 0.6324 - val_loss: 1.1869 - val_accuracy: 0.6466\n",
      "Epoch 91/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.1501 - accuracy: 0.6513 - val_loss: 1.1806 - val_accuracy: 0.6381\n",
      "Epoch 92/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.2516 - accuracy: 0.6121 - val_loss: 1.0893 - val_accuracy: 0.6763\n",
      "Epoch 93/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.1608 - accuracy: 0.6465 - val_loss: 1.2424 - val_accuracy: 0.6204\n",
      "Epoch 94/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.1608 - accuracy: 0.6443 - val_loss: 1.1073 - val_accuracy: 0.6454s: 1.1592 - ac\n",
      "Epoch 95/150\n",
      "212/214 [============================>.] - ETA: 0s - loss: 1.1237 - accuracy: 0.6496 E - ETA\n",
      "Epoch 00095: ReduceLROnPlateau reducing learning rate to 0.0005987368611386045.\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.1227 - accuracy: 0.6501 - val_loss: 1.1249 - val_accuracy: 0.6646\n",
      "Epoch 96/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.2316 - accuracy: 0.6229 - val_loss: 1.1398 - val_accuracy: 0.6719\n",
      "Epoch 97/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.1050 - accuracy: 0.6617 - val_loss: 1.0951 - val_accuracy: 0.6663\n",
      "Epoch 98/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.1834 - accuracy: 0.6448 - val_loss: 1.0893 - val_accuracy: 0.6748\n",
      "Epoch 99/150\n",
      "213/214 [============================>.] - ETA: 0s - loss: 1.1715 - accuracy: 0.6308\n",
      "Epoch 00099: ReduceLROnPlateau reducing learning rate to 0.0005688000208465382.\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.1736 - accuracy: 0.6296 - val_loss: 1.1429 - val_accuracy: 0.6520\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 100/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.1137 - accuracy: 0.6617 - val_loss: 1.0427 - val_accuracy: 0.6955\n",
      "Epoch 101/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.1240 - accuracy: 0.6573 - val_loss: 1.0848 - val_accuracy: 0.6741\n",
      "Epoch 102/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.1250 - accuracy: 0.6471 - val_loss: 1.1012 - val_accuracy: 0.6807\n",
      "Epoch 103/150\n",
      "212/214 [============================>.] - ETA: 0s - loss: 1.1663 - accuracy: 0.6464\n",
      "Epoch 00103: ReduceLROnPlateau reducing learning rate to 0.0005403600225690752.\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.1708 - accuracy: 0.6447 - val_loss: 1.0738 - val_accuracy: 0.6787\n",
      "Epoch 104/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.1026 - accuracy: 0.6629 - val_loss: 1.0363 - val_accuracy: 0.6858\n",
      "Epoch 105/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.0789 - accuracy: 0.6742 - val_loss: 1.0715 - val_accuracy: 0.6758s: 1.0687 - accura\n",
      "Epoch 106/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.1163 - accuracy: 0.6637 - val_loss: 1.0308 - val_accuracy: 0.6872\n",
      "Epoch 107/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.1002 - accuracy: 0.6604 - val_loss: 1.0655 - val_accuracy: 0.6783\n",
      "Epoch 108/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.0698 - accuracy: 0.6818 - val_loss: 1.0796 - val_accuracy: 0.6799\n",
      "Epoch 109/150\n",
      "213/214 [============================>.] - ETA: 0s - loss: 1.0765 - accuracy: 0.6695 ETA: 3s - loss: 0\n",
      "Epoch 00109: ReduceLROnPlateau reducing learning rate to 0.0005133419937919825.\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.0768 - accuracy: 0.6689 - val_loss: 1.0630 - val_accuracy: 0.6771\n",
      "Epoch 110/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.1219 - accuracy: 0.6602 - val_loss: 1.0565 - val_accuracy: 0.6858\n",
      "Epoch 111/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.0740 - accuracy: 0.6751 - val_loss: 1.0143 - val_accuracy: 0.6919\n",
      "Epoch 112/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.0932 - accuracy: 0.6625 - val_loss: 1.0376 - val_accuracy: 0.6948\n",
      "Epoch 113/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.0713 - accuracy: 0.6735 - val_loss: 1.0410 - val_accuracy: 0.6846\n",
      "Epoch 114/150\n",
      "213/214 [============================>.] - ETA: 0s - loss: 1.0459 - accuracy: 0.6882\n",
      "Epoch 00114: ReduceLROnPlateau reducing learning rate to 0.0004876748775132.\n",
      "214/214 [==============================] - 14s 63ms/step - loss: 1.0475 - accuracy: 0.6872 - val_loss: 1.0252 - val_accuracy: 0.6897\n",
      "Epoch 115/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.0946 - accuracy: 0.6663 - val_loss: 1.0041 - val_accuracy: 0.7096\n",
      "Epoch 116/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.0358 - accuracy: 0.6847 - val_loss: 1.0436 - val_accuracy: 0.6870\n",
      "Epoch 117/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.0397 - accuracy: 0.6888 - val_loss: 1.0551 - val_accuracy: 0.6707\n",
      "Epoch 118/150\n",
      "213/214 [============================>.] - ETA: 0s - loss: 1.0426 - accuracy: 0.6796\n",
      "Epoch 00118: ReduceLROnPlateau reducing learning rate to 0.00046329112810781223.\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.0415 - accuracy: 0.6801 - val_loss: 1.0613 - val_accuracy: 0.6984\n",
      "Epoch 119/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.0282 - accuracy: 0.6851 - val_loss: 1.0439 - val_accuracy: 0.6863\n",
      "Epoch 120/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.0490 - accuracy: 0.6863 - val_loss: 1.0236 - val_accuracy: 0.6943\n",
      "Epoch 121/150\n",
      "214/214 [==============================] - 14s 63ms/step - loss: 1.0471 - accuracy: 0.6825 - val_loss: 0.9890 - val_accuracy: 0.7002\n",
      "Epoch 122/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.0509 - accuracy: 0.6755 - val_loss: 1.0191 - val_accuracy: 0.6928\n",
      "Epoch 123/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.0368 - accuracy: 0.6824 - val_loss: 1.0555 - val_accuracy: 0.6793\n",
      "Epoch 124/150\n",
      "212/214 [============================>.] - ETA: 0s - loss: 0.9772 - accuracy: 0.7067\n",
      "Epoch 00124: ReduceLROnPlateau reducing learning rate to 0.00044012657308485355.\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 0.9746 - accuracy: 0.7077 - val_loss: 1.0288 - val_accuracy: 0.6967\n",
      "Epoch 125/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.0395 - accuracy: 0.6805 - val_loss: 1.0484 - val_accuracy: 0.6880\n",
      "Epoch 126/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 0.9778 - accuracy: 0.7039 - val_loss: 0.9933 - val_accuracy: 0.7053\n",
      "Epoch 127/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 0.9887 - accuracy: 0.6942 - val_loss: 0.9899 - val_accuracy: 0.7019\n",
      "Epoch 128/150\n",
      "212/214 [============================>.] - ETA: 0s - loss: 1.0306 - accuracy: 0.6893\n",
      "Epoch 00128: ReduceLROnPlateau reducing learning rate to 0.00041812024719547477.\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.0259 - accuracy: 0.6912 - val_loss: 1.0293 - val_accuracy: 0.6878\n",
      "Epoch 129/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.0101 - accuracy: 0.7000 - val_loss: 0.9502 - val_accuracy: 0.7201\n",
      "Epoch 130/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 0.9707 - accuracy: 0.7024 - val_loss: 0.9720 - val_accuracy: 0.7116\n",
      "Epoch 131/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 0.9802 - accuracy: 0.7109 - val_loss: 0.9754 - val_accuracy: 0.7058\n",
      "Epoch 132/150\n",
      "212/214 [============================>.] - ETA: 0s - loss: 0.9946 - accuracy: 0.6970\n",
      "Epoch 00132: ReduceLROnPlateau reducing learning rate to 0.00039721422654110934.\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 0.9911 - accuracy: 0.6988 - val_loss: 1.0044 - val_accuracy: 0.6992\n",
      "Epoch 133/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.0181 - accuracy: 0.6841 - val_loss: 0.9706 - val_accuracy: 0.7047\n",
      "Epoch 134/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 0.9608 - accuracy: 0.7084 - val_loss: 0.9957 - val_accuracy: 0.7150\n",
      "Epoch 135/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 0.9545 - accuracy: 0.7136 - val_loss: 0.9933 - val_accuracy: 0.7060\n",
      "Epoch 136/150\n",
      "213/214 [============================>.] - ETA: 0s - loss: 1.0073 - accuracy: 0.7032\n",
      "Epoch 00136: ReduceLROnPlateau reducing learning rate to 0.00037735351797891776.\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 1.0072 - accuracy: 0.7030 - val_loss: 0.9948 - val_accuracy: 0.6958\n",
      "Epoch 137/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 0.9688 - accuracy: 0.7079 - val_loss: 0.9992 - val_accuracy: 0.6974\n",
      "Epoch 138/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 0.9437 - accuracy: 0.7176 - val_loss: 0.9617 - val_accuracy: 0.7196\n",
      "Epoch 139/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 0.9619 - accuracy: 0.7064 - val_loss: 0.9755 - val_accuracy: 0.7014\n",
      "Epoch 140/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 0.9912 - accuracy: 0.6997 - val_loss: 0.9467 - val_accuracy: 0.7193\n",
      "Epoch 141/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 0.9409 - accuracy: 0.7218 - val_loss: 0.9998 - val_accuracy: 0.7067\n",
      "Epoch 142/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 0.9388 - accuracy: 0.7194 - val_loss: 0.9566 - val_accuracy: 0.7147\n",
      "Epoch 143/150\n",
      "213/214 [============================>.] - ETA: 0s - loss: 0.9622 - accuracy: 0.7115 ETA: 1s -\n",
      "Epoch 00143: ReduceLROnPlateau reducing learning rate to 0.00035848583793267607.\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 0.9620 - accuracy: 0.7117 - val_loss: 1.0212 - val_accuracy: 0.6997\n",
      "Epoch 144/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 0.9092 - accuracy: 0.7252 - val_loss: 0.9373 - val_accuracy: 0.7189\n",
      "Epoch 145/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 0.8926 - accuracy: 0.7353 - val_loss: 1.0077 - val_accuracy: 0.6965\n",
      "Epoch 146/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 1.0001 - accuracy: 0.6891 - val_loss: 0.9865 - val_accuracy: 0.7094\n",
      "Epoch 147/150\n",
      "213/214 [============================>.] - ETA: 0s - loss: 0.9724 - accuracy: 0.70 - ETA: 0s - loss: 0.9727 - accuracy: 0.7051\n",
      "Epoch 00147: ReduceLROnPlateau reducing learning rate to 0.00034056155709549785.\n",
      "214/214 [==============================] - 14s 66ms/step - loss: 0.9696 - accuracy: 0.7063 - val_loss: 0.9750 - val_accuracy: 0.7013\n",
      "Epoch 148/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 0.8958 - accuracy: 0.7264 - val_loss: 0.9766 - val_accuracy: 0.7084\n",
      "Epoch 149/150\n",
      "214/214 [==============================] - 14s 64ms/step - loss: 0.9480 - accuracy: 0.7115 - val_loss: 0.9455 - val_accuracy: 0.7130\n",
      "Epoch 150/150\n",
      "214/214 [==============================] - 14s 65ms/step - loss: 0.8912 - accuracy: 0.7338 - val_loss: 0.9489 - val_accuracy: 0.7172\n"
     ]
    }
   ],
   "source": [
    "hist = model.fit_generator(\n",
    "    train_generator,\n",
    "    steps_per_epoch=steps_per_epoch,\n",
    "    validation_data=validation_generator,\n",
    "    validation_steps=val_steps,\n",
    "    epochs=150,\n",
    "    verbose=1,\n",
    "    callbacks=[reduceLROnPlat])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val_loss = 0.964 and val_acc = 0.722\n"
     ]
    }
   ],
   "source": [
    "score = model.evaluate(X_test, y_test, verbose=0)\n",
    "print(\"val_loss = {:.3f} and val_acc = {:.3f}\".format(score[0], score[1]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x504 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(15,7))\n",
    "\n",
    "plt.subplot(1,2,1)\n",
    "plt.plot(hist.history['accuracy'], label='train')\n",
    "plt.plot(hist.history['val_accuracy'], label='validation')\n",
    "plt.title('Accuracy')\n",
    "plt.xlabel('Epochs')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.legend()\n",
    "\n",
    "plt.subplot(1,2,2)\n",
    "plt.plot(hist.history['loss'], label='train')\n",
    "plt.plot(hist.history['val_loss'], label='validation')\n",
    "plt.title('Loss')\n",
    "plt.xlabel('Epochs')\n",
    "plt.ylabel('Loss')\n",
    "plt.legend()\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "#http://scikit-learn.org/stable/auto_examples/model_selection/plot_confusion_matrix.html\n",
    "def plot_confusion_matrix(cm, classes,\n",
    "                          normalize=False,\n",
    "                          title='Confusion matrix',\n",
    "                          cmap=plt.cm.Blues):\n",
    "    \"\"\"\n",
    "    This function prints and plots the confusion matrix.\n",
    "    Normalization can be applied by setting `normalize=True`.\n",
    "    \"\"\"\n",
    "    if normalize:\n",
    "        cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n",
    "        print(\"Normalized confusion matrix\")\n",
    "    else:\n",
    "        print('Confusion matrix, without normalization')\n",
    "\n",
    "    plt.imshow(cm, interpolation='nearest', cmap=cmap)\n",
    "    plt.title(title)\n",
    "    plt.colorbar()\n",
    "    tick_marks = np.arange(len(classes))\n",
    "    plt.xticks(tick_marks, classes, rotation=45)\n",
    "    plt.yticks(tick_marks, classes)\n",
    "\n",
    "    fmt = '.2f' if normalize else 'd'\n",
    "    thresh = cm.max() / 2.\n",
    "    for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):\n",
    "        plt.text(j, i, format(cm[i, j], fmt),\n",
    "                 horizontalalignment=\"center\",\n",
    "                 color=\"white\" if cm[i, j] > thresh else \"black\")\n",
    "\n",
    "    plt.tight_layout()\n",
    "    plt.ylabel('True label')\n",
    "    plt.xlabel('Predicted label')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "preds = np.argmax(model.predict(X_test), axis = 1)\n",
    "y_orig = np.argmax(y_test, axis = 1)\n",
    "cm = confusion_matrix(preds, y_orig)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Normalized confusion matrix\n"
     ]
    },
    {
     "data": {
      "image/png": "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p5ctUKME4yoOC7wDpBljVgPrgW2edcOAi4GPPRW8GtgNXALM8nzmtNYGbyKPiIiIiPxuhXZerbXVC1sXbMaYS4CfrbX7gDYFFBlSyKZ/L7moREREREreuT3uWsxbZRlj+hpj/ux5H+f5s3xQGGNigS+BscGKQURERESC46wXbBljJgDlcF/k9CRwBJgEpJZsaAWz1jqBBsH42SIiIiISXMW528Bl1toWxph1ANban40xZeuePiIiIiIhwBgIO8cv2CrOtIETxpgw3BdInZ5veqpEoxIRERERKUBxOq8vAe8DVYwxfwc+B54u0ahERERERApw1mkD1tq3jDFrgGs9H/Wy1m4q2bBEREREpCDn+KyBYj9hKxw4gXvqQLHuUCAiIiIi4m9n7YgaYx4D3gNigTjgXWPMn0o6MBERERERX8UZeR0AJFtrjwAYY/4FrAH+XZKBiYiIiEh+5/rjYYszBeA7vDu5EcDOkglHRERERKRwhY68GmOexz3H9Qiw2RiT4Vm+HvcdB0REREQkwM7xgdcipw2cvqPAZmBens+Xl1w4IiIiIiKFK7Tzaq19LZCBiIiIiIiczVkv2DLG1AX+BTQCKpz+3FrboATjEhEREREfBqPHwxajzH+ANwADdAKmA1NLMCYRERERkQIVp/Maaa3NALDW7rDWPg5cXbJhiYiIiIjkV5z7vP5m3DcU22GMuRvIBqqWbFgiIiIiko/R3QaK03l9ALgAGI577msl4LaSDEpEREREpCBn7bxaa1d43v4KDCzZcERERESkKOf6E7aKekjBLNwPJSiQtfamEolIRERERKQQRY28TghYFKWUAcLDys7/3Zx0nQp2CH51QYXizHqRYFn3707BDsGvWjyWHuwQ/OqrpzoHOwS/Khdeds7VACdchY4dhaS9B44FOwS/OVnG6iYUFfWQgiWBDEREREREzq44t4oqy871/EVEREQkhKjzKiIiIiIho9iTBo0x51lrfyvJYERERESkcAbdbeCsI6/GmJbGmK+A7Z7lZsaYF0s8MhERERERH8WZNjAe6Ar8BGCt3YAeDysiIiIiQVCcaQNh1trvfIaoXSUUj4iIiIgUoQzdxfN/UpzO625jTEvAGmPCgfuBb0o2LBERERGR/IrTeb0H99SBGsBeYLHnMxEREREJMI28noW19gegbwBiEREREREp0lk7r8aYV4B8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\n",
      "text/plain": [
       "<Figure size 720x720 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "keys = OrderedDict(sorted(genres.items(), key=lambda t: t[1])).keys()\n",
    "\n",
    "plt.figure(figsize=(10,10))\n",
    "plot_confusion_matrix(cm, keys, normalize=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Majority Vote"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "def majority_vote(scores):\n",
    "    values, counts = np.unique(scores,return_counts=True)\n",
    "    ind = np.argmax(counts)\n",
    "    return values[ind]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "preds = model.predict(X_test, batch_size=128, verbose=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Each sound was divided into 39 segments in our custom function\n",
    "scores_songs = np.split(np.argmax(preds, axis=1), 300)\n",
    "scores_songs = [majority_vote(scores) for scores in scores_songs]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Same analysis for split\n",
    "label = np.split(np.argmax(y_test, axis=1), 300)\n",
    "label = [majority_vote(l) for l in label]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "majority voting system (acc) = 0.820\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import accuracy_score\n",
    "\n",
    "print(\"majority voting system (acc) = {:.3f}\".format(accuracy_score(label, scores_songs)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Compared to the classical approach, we are winning now!\n",
    "\n",
    "We passed from a 78.8% accuracy to **82%**. It is not a great improvement but this is a really simple architecture."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Save the model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Save the model\n",
    "model.save('../models/custom_cnn_2d.h5')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
